import java.util.*;

public class 设计有setAll功能的哈希表 {
    // 定义全局变量
    public static Map<Integer, int[]> map; // key -> [value, version]
    public static int globalValue; // 全局设置的值
    public static int globalVersion; // 全局版本号
    public static int currentVersion; // 当前版本号

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int N = in.nextInt(); // 操作数

        // 初始化全局变量
        map = new HashMap<>();
        globalValue = 0;
        globalVersion = -1;
        currentVersion = 0;

        while (N-- > 0) {
            int opt = in.nextInt(); // 操作类型

            if (opt == 1) {
                // put 操作
                int x = in.nextInt(); // key
                int y = in.nextInt(); // value
                map.put(x, new int[]{y, currentVersion});
            } else if (opt == 2) {
                // get 操作
                int x = in.nextInt(); // key
                if (!map.containsKey(x)) {
                    System.out.println(-1);
                } else {
                    int[] valueVersionPair = map.get(x);
                    if (valueVersionPair[1] < globalVersion) {
                        // 如果版本号小于全局版本号，返回 globalValue
                        System.out.println(globalValue);
                    } else {
                        // 否则返回存储的值
                        System.out.println(valueVersionPair[0]);
                    }
                }
            } else if (opt == 3) {
                // setAll 操作
                int x = in.nextInt(); // 全局值
                globalValue = x;
                globalVersion = ++currentVersion; // 更新全局版本号
            }
        }

        in.close();
    }
}
